package com.xiaoxie.system.service;

import com.github.pagehelper.PageInfo;
import com.xiaoxie.system.domain.Ds;
import com.xiaoxie.system.domain.dto.DsDto;
import com.xiaoxie.system.domain.dto.DsOptionDto;
import com.xiaoxie.system.domain.dto.DsQuery;

import javax.sql.DataSource;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface DsService {
    List<Ds> selectAll(String dsName);

    Object getDataSource(Ds ds);

    boolean addDs(DsDto dsDto);

    void updateDs(DsDto dsDto);

    Set<Object> getDataSources();

    /**
     * 分页查询数据源
     * @param pageNum
     * @param ds
     * @return
     */
    PageInfo<Ds> selectByConditionWithPage(Integer pageNum, DsQuery ds);

    /**
     * 检查数据源名称是否重复
     * @param name
     * @return
     */
    Boolean checkName(String name);

    /**
     * 测试数据源连接
     * @param dsDto
     * @return
     */
    Boolean testConnection(DsDto dsDto);

    Boolean updateCheckName(String name,Integer id);

    Ds getDsById(Integer id);

    void deleteDsById(Integer id);
    void deleteDsByDsName(String dsName);

    void batchDeleteDsById(List<Integer> idList);

    List<DsOptionDto> getDsOptions();
}
